package main

import (
	"device-modbus/plugins/text/server"
	"io"
	"log"
	"os"
)

func main() {
	// 1. 初始化服务配置（可从配置文件/环境变量加载，此处用默认配置）
	cfg := server.DefaultConfig()
	// 自定义日志（输出到文件+控制台，生产环境推荐）
	logFile, err := os.OpenFile("./grpc_server.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		log.Printf("打开日志文件失败，使用默认日志: %v", err)
	} else {
		// 日志同时输出到控制台和文件
		multiLog := log.New(io.MultiWriter(os.Stdout, logFile), "[gRPC-Server] ", log.LstdFlags|log.Lshortfile)
		cfg.Log = multiLog
	}
	cfg.ListenAddr = "0.0.0.0:9002"
	// 2. 创建 gRPC 服务实例
	server := server.NewServer(cfg)
	// 3. 启动服务（阻塞直到关闭）
	if err := server.Start(); err != nil {
		cfg.Log.Fatalf("文本 gRPC 服务启动失败: %v", err)
	}

	cfg.Log.Println("文本 gRPC 服务已退出")
}
